package com.ruoyi.system.domain;

import java.util.Date;

import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.enums.common.State;
import com.baomidou.mybatisplus.annotation.*;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.validation.group.InsertGroup;
import com.ruoyi.common.validation.group.UpdateGroup;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.annotation.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 序列号模板对象 sys_serial_number
 *
 * @author SunLuQuan
 * @date 2022-06-24
 */
@Data
@TableName("sys_serial_number")
public class SysSerialNumber extends BaseEntity {

private static final long serialVersionUID = 1L;

    /** 编号 */
    @TableId
    @Length(min=0,max=11,message="编号 数据长度不能大于 11")
    private Long id;

    /** 模块名称 */
    @Excel(name = "模块名称")
    @NotBlank(groups = {InsertGroup.class,UpdateGroup.class},message = "模块名称不能为空")
    @Length(min=0,max=50,message="模块名称 数据长度不能大于 50")
    private String moduleName;

    /** 模块code */
    @Excel(name = "模块code")
    @NotBlank(groups = {InsertGroup.class,UpdateGroup.class},message = "模块code不能为空")
    @Length(min=0,max=50,message="模块code 数据长度不能大于 50")
    private String moduleCode;

    /** 序列号模板 */
    @Excel(name = "序列号模板")
    @NotBlank(groups = {InsertGroup.class,UpdateGroup.class},message = "序列号模板不能为空")
    @Length(min=0,max=50,message="序列号模板 数据长度不能大于 50")
    private String configTemplate;

    /** 存放当前序列号 */
    @Excel(name = "存放当前序列号")
    @Length(min=0,max=50,message="存放当前序列号 数据长度不能大于 50")
    private String maxSerial;

    /** 重置标记 */
    @Excel(name = "重置标记")
    @Length(min=0,max=50,message="重置标记 数据长度不能大于 50")
    private String resetTag;

    /** 一次生成的缓存序列数 */
    @Excel(name = "一次生成的缓存序列数")
    @Length(min=0,max=2,message="一次生成的缓存序列数 数据长度不能大于 2")
    private Integer preMaxNum;

    /** 流水号大小 */
    @Excel(name = "流水号大小")
    @Length(min=0,max=10,message="流水号大小 数据长度不能大于 10")
    private Integer count;

/**表中没有的字段*/
    @TableField(exist = false)
    private Date updateTime;

}
